Driving mechanism, robot apparatus measurement method, robot apparatus control method and component manufacturing method

ABSTRACT

A sensor detection error at a joint of a robot arm is correctly detected. A joint structure that joins links and of a robot arm includes a sensor for determining force acting between the links. A driving apparatus that generates a driving force of a joint includes first and second driving parts. A constraining part that constrains the joint movable in a driving direction of the joint and be unmovable in another direction includes first and second supporting parts that are movable relative to each other in the driving direction of the joint. The driving part of the driving apparatus is fixed to the link, and the supporting part of the constraining part is fixed to the link. Also, the supporting part of the constraining part is fixed to the driving part of the driving apparatus. The sensor is fixed so as to link the supporting part and the link.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to a driving mechanism including a sensorthat measures force acting on a link joined to the driving mechanism, arobot apparatus measurement method and a robot apparatus control method,and a component manufacturing method.

Description of the Related Art

In recent years, multijoint robots have been used on various industrialproduct production lines. However, there are many processes that aredifficult to perform with multijoint robots. For example, on productionlines for assembling, e.g., automobile components, multijoint robots arewidely used particularly in processes in which a load of several hundredgrams to several kilograms is imposed on a component. On the other hand,there are various difficulties in performing processes requiring a loadprovided to a component to be around several grams such as attachment ofa work including, e.g., a soft object, a lightweight object or alow-strength member and processes for providing a precise fit withmultijoint robots.

As stated above, in processes that cannot be performed with multijointrobots, currently, dedicated apparatuses or tools specialized for thoseprocesses are used instead of multijoint robots. However, such dedicatedapparatuses or tools are designed and manufactured only for a particularprocess or a work to be handled, and thus there is a problem in thatsignificant time and costs are spent until an apparatus or a tool ofsuch type is actually prepared and, for example, a production line isstarted.

Therefore, there is a demand for performing a process in which a fragilework including, e.g., a soft object, a lightweight object or alow-strength member such as mentioned above is handled, using aversatile multijoint robot rather than a dedicated device and/or adedicated tool.

Where a work including a soft object, a lightweight object or alow-strength member such as mentioned above is handed, for example, forprevention of breakage or deformation of the work, it is impossible tocause a large force to act on the work. Therefore, if a work of thistype is manipulated with a multijoint robot, it is necessary to controlforce acting on the work with high precision via a joint or a link.

For example, a configuration in which a force sensor is disposedtogether with an end-effector such as a hand or a gripper attached to adistal end of a multijoint robot has conventionally been known. Anoutput value from this force sensor is fed-back for driving control ofthe end-effector, whereby force acting on a work can be controlled.Also, in addition to the end-effector at the end, for example, it isconceivable that forces acting on respective links included in an arm ofthe multijoint robot are measured and fed back for driving control ofthe multijoint robot. In particular, a force that is necessary to bemeasured for high-precision driving control of a multijoint robot fromamong forces acting on links of a robot arm is a torque acting around adriving axis.

As a measure for detecting a torque acting on a link of an arm such asmentioned above, a configuration in which a torque sensor is mounted ona joint of a robot arm is proposed (for example, Japanese PatentApplication Laid-Open No. 2011-72186).

Gravitational force, inertial force and/or Coriolis force, which act ona link itself, and/or force from an adjacent link act on a joint of amultijoint robot arm depending on a motion of the arm. For example, theforces acting on the joint include respective components of a total offorces in six directions including translational forces in threecoordinate axis directions and rotative forces around three coordinateaxes in an orthogonal coordinate system where a driving axis of thejoint is a z-axis. In the below, from among the forces in the sixdirections, forces acting in five directions other than a force actingaround the driving axis of the joint is referred to as a force inanother axial direction.

On the other hand, in driving control of a multijoint robot arm, forexample, a force around a driving axis of a joint, the force acting on alink, is detected and fed back for driving of the joint. Thus, it isdesirable that a force sensor mounted on a joint can correctly detect aforce around a driving axis of the joint, the force acting on a linkjoined to the joint.

However, upon a force in another axial direction such as mentioned aboveacting on a force sensor, the force sensor fails to correctly detect aforce around a driving axis. For example, if a force in another axialdirection acts on a force sensor of a type that includes a deformablepart and determines the force by detecting an amount of deformationoccurred in the deformable part, the force sensor deforms also in acircumferential direction of the driving axis of the joint from theeffect of the force in the other axial direction.

Hereinafter, the effect of the force in the other axial direction on theforce sensor is referred to as “interference in another axialdirection”. In other words, upon some kind of deformation occurring inthe force sensor as a result of a force in another axial direction beingexerted on the force sensor, the deformation appears as a detectionerror of the force sensor that detects a force around the driving axisof the joint. In other words, a measurement error caused in a forcesensor provided on a driving axis of a certain joint by a force inanother axial direction as stated above is referred to as “interferencein another axial direction”. If such interference in another axialdirection occurs, it is impossible to correctly detect a force aroundthe driving axis of the joint with the force sensor.

Therefore, in order to correctly detect a force around a driving axis ofa joint, for example, it is necessary to correct a sensor detected valueerror caused by interference in another axial direction in some way.Therefore, for example, it is conceivable that a force in another axialdirection acting on a force sensor is detected to correct a detectedvalue from the force sensor.

However, a conventional joint structure such as described in JapanesePatent Application Laid-Open No. 2011-72186, a bearing is disposedbetween a force sensor and a link, and thus, it is not so easy to detecta value of a force in another axial direction.

A reason of difficulty in detection of a value of a force in anotheraxial direction where a mechanical element such as a bearing isinterposed at a joint of a multijoint robot arm like the conventionalconfiguration in Japanese Patent Application Laid-Open No. 2011-72186 isprovided below.

For example, this type of joint structure allows motion of a joint in adesired one direction only, and uses a bearing such as a cross rollerbearing as a constraining unit (constraining part) for constrainingmotion in another direction. Such structure may result in complexity ofa transfer pathway of a force in another axial direction.

For example, depending on the joint structure, there may be a pathway onwhich a joint driving force is transferred other than a joint axisconnecting two links. For example, in the structure indicated inJapanese Patent Application Laid-Open No. 2011-72186, a force in anotheraxial direction acting on a drive-side link is transferred via both abearing, which is a constraining unit of the joint, and the forcesensor. With such configuration, it is difficult to obtain a correctvalue of the force in another axial direction transferred to the forcesensor.

In particular, a driving force of a link reduced by the amount of africtional force of a bearing, which is a constraining part of a joint,is transferred to a force sensor. Thus, in order to correctly grasp aforce in another axial direction acting on the force sensor, it isnecessary to grasp the frictional force of the bearing disposed on thejoint. However, a frictional force of a bearing of a joint exhibitsnon-linear characteristics relative to various factors such as a forceacting on the bearing, a driving speed of the joint and an individualspecificity of the bearing, and thus it is difficult to correctly grapea frictional force of a bearing.

SUMMARY OF THE INVENTION

The present invention enables accurate detection of a force in anotheraxial direction acting on a joint of a robot arm, and thus enablescorrection of a detection error of a force sensor caused by interferencein another axial direction and accurate detection of a force acting on alink joined to the joint.

According to an aspect of the present invention, in order to solve theabove described problem, a driving mechanism for driving a first linkand a second link relative to each other, the driving mechanismcomprises: a driving apparatus that includes a fixed part and a part tobe driven and drives the part to be driven relative to the fixed part;and a constraining part that includes a first supporting part and asecond supporting part and constrains the first link and the second linkso as to be movable in a desired direction and be unmovable in anotherdirection, wherein one of the fixed part and the part to be driven isfixed to the first link; the first supporting part is fixed to the firstlink; the second supporting part is fixed to another of the fixed partand the part to be driven; and a sensor for determining force acting onthe second link is attached so as to link the other of the fixed partand the part to be driven and the second link.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a configuration of a robot systemaccording to an embodiment of the present invention.

FIG. 2 is a diagram schematically illustrating a structure of a joint ofthe robot arm in FIG. 1 .

FIG. 3 is a block diagram illustrating a configuration of a controlsystem of the robot system in FIG. 1 .

FIG. 4 is a flowchart illustrating a flow of measurement and drivingcontrol of a driving force of a joint in the control system in FIG. 3 .

FIG. 5 is a flowchart illustrating another flow of measurement anddriving control of a driving force of a joint in the control system inFIG. 3 .

FIG. 6 is a diagram illustrating force in other axial directions exertedon a joint of a robot arm.

FIG. 7 is a diagram schematically illustrating another joint structurein the robot arm in FIG. 1 .

FIG. 8 is a diagram illustrating a slider joint having a configurationthat is similar to that of the joint in FIGS. 2 to 7 .

FIG. 9 is a diagram illustrating a disposition of joints at an end partof the robot arm in FIG. 1 and forces exerted on respective parts.

DESCRIPTION OF THE EMBODIMENTS

Preferred embodiments of the present invention will now be described indetail in accordance with the accompanying drawings.

The present invention enables simplification of a transfer pathway of aforce in another axial direction applied to a force sensor. Thus, avalue of a force in another axial direction applied to the force sensorcan be grasped with high precision, and consequently, a sensor detectedvalue error caused by interference in another axial direction can becorrected with high precision, enabling high-precision sensor detectedvalue correction. Use of the corrected sensor detected value for drivingcontrol of the multijoint robot enables high-precision driving controland thus enables the multijoint robot to perform a process that hasconventionally been difficult to perform with a multijoint robot.

More specifically, use of the corrected sensor detected value fordriving control of the multijoint robot enables high-precision controlof a force provided to a component by an end-effector attached to adistal end of the multijoint robot. Consequently, a process requiring aload provided to a component to be around several grams such as aprocess for attachment of a soft object or a low-strength member can beautomated by a multijoint robot.

Modes for carrying out the present invention will be described belowwith reference to the embodiments illustrated in the attached drawings.The below-indicated embodiments are definitely mere examples, and canarbitrarily be changed by a person skilled in the art without departingthe spirit of the present invention, regarding, for example, aconfiguration of a minor part. Also, numerical values indicated in thepresent embodiment are reference numerical values, and are not intendedto limit the present invention.

In each of the embodiments described below, a sensor having a functionthat determines a force acting around a driving axis of a joint isreferred to as a force sensor.

Embodiment 1

(Basic Configuration of Multijoint Robot System)

FIG. 1 illustrates a basic configuration of a multijoint robot system towhich the present embodiment can be applied. The robot system in FIG. 1includes a robot arm 1 configured, for example, as a multijoint robotarm, and a robot control apparatus 2 that controls the robot arm 1.

The robot arm 1 is a multijoint robot arm having a vertical six-axisconfiguration. The robot arm 1 includes first to sixth links 111 to 116joined via first to sixth joints 121 to 126 on a base 110. The base 110and the first link 111 of the robot arm 1 are connected by a joint 121that rotates around a rotary axis in a Z-axis direction. Also, the firstlink 111 and the second link 112 of the robot arm 1 are connected by ajoint 122 that rotates around a rotary axis in a Y-axis direction. Also,the second link 112 and the third link 113 of the robot arm 1 areconnected by a joint 123 that rotates around a rotary axis in the Y-axisdirection. Also, the third link 113 and the fourth link 114 of the robotarm 1 are connected by a joint 124 that rotates around a rotary axis inan X-axis direction. Also, the fourth link 114 and the fifth link 115 ofthe robot arm 1 are connected by a joint 125 that rotates around arotary axis in the Y-axis direction. Also, the fifth link 115 and thesixth link 116 of the robot arm 1 are connected by a joint 126 thatrotates around a rotary axis in the X-axis direction.

An end-effector 117 such as a motor hand or an air-powered hand forperforming component assembling work or component transfer work on aproduction line is connected to a tip of the sixth link 116 of the robotarm 1.

Motion of the robot arm 1 is controlled by the robot control apparatus2. For example, the robot control apparatus 2 controls a pose (positionand orientation) of each joint of the robot arm 1 according to apreprogramed robot control program, whereby a pose of the robot arm 1 ora position and a pose of a reference site set in the vicinity of theend-effector 117 is controlled. Also, in synchronization with this, therobot control apparatus 2 can manipulate a work using the robot arm 1 bycontrolling motion of the end-effector 117, for example, a motion suchas opening/closing of the hand. Consequently, a component can bemanufactured.

In FIG. 1 , three-dimensional coordinate axes for the entire robot arm 1are indicated in the lower left part. Then, the robot arm 1 in FIG. 1 isillustrated in a pose in which the first joint 121 makes the adjacentlink rotate around the rotary axis in the Z-axis direction, and thesecond joint 122, the third joint 123 and the fifth joint 125 make therespective adjacent links rotate around the respective rotary axes inthe Y-axis direction. Also, the fourth joint 124 and sixth joint 126 areconfigured to make the respective adjacent links rotate around therespective rotary axes in the X-axis direction. However, a relationshipbetween the rotary axis of each of the joints and the relevantcoordinate axis is one that is applicable to the pose of the robot arm 1in FIG. 1 . Therefore, for example, use of another coordinate system maybe needed if the robot arm 1 is controlled to be in a pose that isdifferent from that of FIG. 1 by the robot control apparatus 2.

(Basic Structure of Joint of Multijoint Robot)

FIG. 2 schematically illustrates an example basic structure of a jointin the robot arm 1 in FIG. 1 .

In the below, in order to more generally indicate a configuration of therobot arm 1 in FIG. 1 with reference to FIG. 2 , an arbitrary joint fromamong the first to sixth joints 121 to 126 may be referred to as “n-thjoint”. Also, in order to indicate this “n-th (joint; the same appliesto “link”)” more simply, indications of reference numerals in the figurewith a subscript “n” prefixed is used. Also, a joint adjacent to the“n-th” joint on the end side of the arm may be indicated as an “n+1”joint, and a joint adjacent to the “n-th” joint on the base side may beindicated as an “n−1” joint. In the arm configuration in FIG. 1 , ncorresponds to the number of a joint (or a link) of the robot arm 1 andmay take the value of 1 to 6. Also, in order to avoid complexity, anindication of the letter n may be omitted in the figure.

FIG. 2 illustrates a driving mechanism included in a joint joining thefirst and second links (210, 220) so as to be movable relative to eachother. The driving mechanism in FIG. 2 includes a sensor for determiningforce acting on the first and second link (210, 220).

In FIG. 2 , an n-th joint joins an n−1-th link 210 and an n-th link 220.The n-th joint includes a driving unit n230 that drives the n-th jointand a constraining part n240 that constrains motion of the n-th joint.Also, the n-th joint includes a force sensor _(n) 250 that detects aforce exerted on links joined via the n-th joint.

The n−1-th link 210 and the n-th link 220 are joined via this joint soas to be movable relative to each other, and respective poses of then−1-th link 210 and the n-th link 220 are controlled by a driving forcegenerated by the driving unit _(n) 230.

The driving unit _(n) 230 that generates a driving force of the jointincludes a fixed part 231 and a part to be driven 232 as a first drivingpart and a second driving part, respectively. Although, illustration ofdetails of an inner configuration of the driving unit _(n) 230 isomitted in FIG. 2 , the driving unit of this type of robot jointincludes, for example, an electric motor and a reducer. Rotation of anoutput shaft of the electric motor is input to the reducer, and therotation of the output shaft of the electric motor is reduced at apredetermined reduction ratio and is transferred to the part to bedriven 232. For the reducer of the driving unit _(n) 230, for example, astrain wave gearing is used.

The constraining part _(n) 240 has a function that constrains respectivea direction of relative movement of the first and second links in such amanner that the first and second links are movable in a direction inwhich the joint is driven and are unmovable in the other directions. Inother words, the constraining part _(n) 240 constrains motion of thejoint in such a manner that the joint is movable only around a drivingaxis _(n) 200 of the n-th joint and is unmovable in the otherdirections. The constraining part _(n) 240 can include, for example, across roller bearing 241 and a connecting member 244 fixed to an innerrace 242 of the cross roller bearing 241. The inner race 242 and anouter race 243 of the cross roller bearing 241 are disposed atrespective positions at which the inner race 242 and the outer race 243are rotatable around the driving axis _(n) 200. The inner race 242 andthe outer race 243 of the cross roller bearing 241 included in theconstraining part _(n) 240 correspond to a first supporting part and asecond supporting part of the constraining part _(n) 240.

The force sensor _(n) 250 includes, for example, a torque sensor thatmeasures a displacement in order to determine a force around the drivingaxis _(n) 200 of the joint, the force being applied to the torque sensoritself. In that case, the force sensor _(n) 250 includes, for example,an inner race part 251, an outer race part 252, and a spring part 253linking the inner race part 251 and the outer race part 252. With suchconfiguration, when a force around driving axis _(n) 200 acts on theforce sensor _(n) 250, the spring part 253 deforms, enabling the forcesensor _(n) 250 to measure a driving force of a joint, the driving forceacting on the link, from an amount of deformation of the spring part253.

For example, a sensitivity matrix (n330, which will be described later)for converting a deformation amount of the force sensor _(n) 250 into aforce is provided in advance in the form of, e.g., a table memory,whereby a measured deformation amount can be converted into ameasurement amount of a force. Examples of a force sensor displacementdetection method for measuring an amount of deformation of the forcesensor _(n) 250 include, e.g., a strain gauge method, a capacitancemethod, a magnetic method and an optical encoder method. For example, inthe case of the optical encoder method, a configuration in which a scaleof an optical rotary encoder and an optical sensor (not illustrated) aredisposed so as to face the connecting member 244 and the outer race part252, respectively.

In the n-th joint in FIG. 2 , a mechanical joining (connection)relationship is configured below.

-   -   (i) The fixed part 231 (first driving part) of the driving unit        _(n) 230 in FIG. 2 is fixed to the n−1-th link 210 (tentatively        referred to as “first link”), and the part to be driven 232        (second driving part) is fixed to the connecting member 244. The        connecting member 244 fixedly links the inner race part 251 of        the force sensor _(n) 250, the inner race 242 (second supporting        part) of the constraining part _(n) 240 and the n-th link 220        (tentatively referred to as “second link”) to one another.    -   (ii) The outer race 243 (first supporting part) of the cross        roller bearing 241 (constraining part) is fixed to the n−1-th        link 210 (first link).    -   (iii) Also, the connecting member 244 is fixed to the inner race        part 251 of the force sensor _(n) 250.    -   (iv) The outer race part 252 (second supporting part) of the        force sensor _(n) 250 is fixed to the n-th link 220 (second        link).

Also, as a structure that is equivalent to that of the joint describedwith reference to FIG. 2 , a joint structure such as illustrated in FIG.7 may be employed. In FIG. 7 , members having a disposition (linkage orjoining) relationship corresponding to that of FIG. 2 are provided withreference numerals that are the same as those of FIG. 2 .

Although in the joint structure in FIG. 7 , a force sensor _(n) 250 isdisposed at a position that is different from that of FIG. 2 , thelinkage (joining) relationship among the respective parts of the jointstructure is similar to that of the joint in FIG. 2 . However, in FIG. 7, positions of links 210 and 220 are switched from each other so as tocorrespond to the first and second links in the linkage (joining)relationship described in (i) to (iv) above. Likewise, in FIG. 7 , apositional relationship between a fixed part 231 (first driving part) ofa driving unit _(n) 230 and a part to be driven 232 (second drivingpart) is opposite to that of FIG. 2 .

Furthermore, in FIG. 7 , an outer race 243 of a cross roller bearing 241(constraining part) corresponds to the second supporting part of theconstraining part in (i) to (iv) above, and an inner race 242corresponds to the first supporting part of the constraining part in (i)to (iv) above. Also, the connecting member 244 in (i) to (iv) abovecorresponds to a cylindrical housing part covering the driving unit _(n)230 in FIG. 7 . An inner race part 251 of the force sensor _(n) 250 isfixed to the connecting member 244, and an outer race part 252 of theforce sensor _(n) 250 is fixed to the link 220 (second link).

As with the joint structure in FIG. 2 , the joint structure in FIG. 7satisfies the linkage (joining) relationship described in (i) to (iv)above. Thus, the structure in FIG. 7 also enables joint driving forcemeasurement and joint driving control, which will be described later,and can be expected to provide operation and effects similar to those ofthe joint structure in FIG. 2 (described later).

Also, FIG. 2 indicates a structure in which the links rotationally moverelative to each other; however, in the case of a slider joint thatlinearly moves links relative to each other, the structure in FIG. 8 maybe employed. In FIG. 8 , also, members having a disposition relationshipcorresponding to that of FIG. 2 (or FIG. 7 ) are provided with referencenumerals that are the same as those of FIG. 2 (or FIG. 7 ). Although areference numeral correspondence between FIGS. 8 and 2 is similar tothat in the case of FIG. 7 above and thus is not described repeatedly,even though the joint structure in FIG. 8 is a slider joint, a linkage(joining) relationship among respective parts of the joint structure isequivalent to that of FIG. 2 (FIG. 7 ) described in (i) to (iv) above.

As illustrated in FIGS. 7 and 8 , various configurations that satisfythe linkage (joining) relationship such as described in (i) to (iv)above are conceivable, and it should be understood that a person skilledin the art can make various design changes to the joint structureaccording to the present embodiment described above as an example.

(Control of Robot Arm)

The plurality of joints of the robot arm 1 configured as illustrated inFIG. 2 is controlled by the robot control apparatus 2. The robot controlapparatus 2 controls respective angles of n-th joints (first to sixthjoints 121 to 126) and thereby can cause the robot arm 1 to take adesired pose.

Here, the robot control apparatus 2 can control, for example, a forceapplied on a work (not illustrated) manipulated via the end-effector117. For example, the robot control apparatus 2 can receive inputs ofmeasured values from force sensors disposed at respective joints (n) ofthe robot arm 1 and feed the measured values back to the driving units_(n) 230 of the respective joints. Consequently, for example, feedbackcontrol such as controlling a force applied to a work to be a desiredmagnitude or performing control to prevent a force having apredetermined magnitude or more from being applied to a work can beperformed.

FIG. 3 illustrates a configuration of a control system for an n-th jointof the robot arm 1 in the robot control apparatus 2 as a function blockdiagram. In the function blocks of the control system, a major partincludes an arithmetic operation unit 320 and a storage apparatus 300.

The arithmetic operation unit 320 can include a computer, for example, aCPU including, e.g., a general-purpose microprocessor. Examples of astorage device used for the storage apparatus 300 include semiconductormemories such as a ROM and a RAM and fixed (external) storageapparatuses such as an HDD and an SSD. Also, for the storage device usedfor the storage apparatus 300, a configuration using a rewritablerecording medium such as any of various flash memories or optical(magnetic) disks is conceivable. The storage apparatus 300 can includean arbitrary combination of these storage devices.

The storage device included in the storage apparatus 300 provides arecording medium that the arithmetic operation unit 320 (computer) canread. For example, in the storage apparatus 300, a program 301 in whicha later-described control procedure to be executed by the arithmeticoperation unit 320 (computer) that provides the control apparatus forthe robot arm 1 is written can be stored.

Also, in the storage apparatus 300, information necessary for making therobot arm 1 manipulate works to, for example, assemble and manufacture acertain industrial product can be stored in the form of, for example, arobot control program. The robot control program is written in the formof, for example, what is called a teaching point list in which aposition and a pose of the reference site at the end of the robot arm 1is defined or an arbitrary robot programming language. Particularly forthe n-th joint in FIG. 2 , in the robot control program, operation ofthe driving unit _(n) 230 of the joint is stored.

Also, in the storage apparatus 300, a later-described sensitivity matrix_(n) 330 for a force sensor _(n) 250 can be stored in a form such as atable memory. The sensitivity matrix _(n) 330 can be stored, forexample, in the form of a file in an HDD included in the storageapparatus 300, and is loaded to a particular area of a RAM at the timeof program execution or system initialization, which will be describedlater. Consequently, the arithmetic operation unit 320 can refer to thesensitivity matrix _(n) 330 for the force sensor _(n) 250 of therelevant joint.

Furthermore, in FIG. 3 , an operation instructing unit 310 includes, forexample, a PC terminal for control, which is disposed in the vicinity ofthe robot arm 1 or a control terminal such as what is called a teachingpendant (TP). An operator (user) can make the robot arm 1 take arbitrarymotion by, for example, operating the operation instructing unit 310 inreal time while checking the state of the robot arm 1. Also, motion ofthe robot arm 1 can be checked or a part of the robot control programcan be modified by tracing execution of the aforementioned robot controlprogram.

Also, in FIG. 3 , driving control of the driving unit _(n) 230 of therelevant joint (for example, later-described driving force control ofthe joint) is performed by the arithmetic operation unit 320 via adriver circuit (for example, a servocontrol circuit), details of whichare not illustrated. Consequently, the robot arm 1 is controlled to takea pose necessary for certain work. Here, the arithmetic operation unit320 can acquire a measured value of a driving force of the relevantjoint at every moment in synchronization with, e.g., a system clock,from the force sensor _(n) 250 disposed as in FIG. 2 .

In FIG. 3 , the other function blocks each indicated by a name such as“xxx unit” or “xxx-er (-or)” are illustrated like hardware blocks in thefigure, but, in reality, are provided by, for example, execution of theprogram 301 by the arithmetic operation unit 320 (CPU). However, thesefunction blocks each indicated by a name “xxx unit” or “xxx-er (-or)”(e.g., 330, 340, 350, 321, 322 and 323) can actually be provided in theform of hardware blocks, and the present embodiment is not intended tohinder such implementation.

An overview of operation of the respective function blocks in FIG. 3will be described below.

The arithmetic operation unit 320, which is the control apparatus,generates an operation command for a driving unit _(n) 230, for example,based on an operation command from the operation instructing unit 310 orbased on teaching data or the robot control program stored in thestorage apparatus 300 to control operation of the driving unit _(n) 230.

Here, in order to determine a joint driving force of a n-th joint, thearithmetic operation unit 320 performs feedback control using a detectedvalue from the force sensor _(n) 250 for the n-th joint. The forcesensor _(n) 250 receives an input of operation of the driving unit _(n)230 and outputs a detected value of a force around the driving axis _(n)200, the force acting on an n-th link driven by the n-th joint on thearm end side.

In that case, an other axial direction force calculating unit 321 (otheraxial direction force calculation process) calculates force in otheraxial directions acting on the n-th joint. One of inputs to the otheraxial direction force calculating unit 321 is a dynamic force acting onthe n-th link (driven by the relevant joint), which is calculated by acalculating unit 340 for the n-th joint. Also, another input to theother axial direction force calculating unit 321 is a (previouslycalculated) detected value from a force sensor _(n+1) 350 of an n+1-thjoint. A process of arithmetic operation by the other axial directionforce calculating unit 321 corresponds to an other axial direction forcecalculation process in which force in directions other than apredetermined direction (driving direction) of the joint, the forceacting on the force sensor _(n) 250 of the joint (force in other axialdirections), is calculated.

Furthermore, an other axial direction interference calculating unit 322(other axial direction interference calculation process) calculatesinterference in the other axial directions using the force in thedirections other than the predetermined direction (driving direction) ofthe joint, which have been calculated by the other axial direction forcecalculating unit 321 (other axial direction force calculation process)(force in the others axial directions) and a sensitivity matrix _(n) 330for the force sensor _(n) 250 of the joint. Here, as mentioned above,interference in the other axial directions is an amount of error causedby forces in axial directions other than the driving direction of thejoint, which is contained in a detected value from the force sensor _(n)250 of the joint. In other words, interference in the other axialdirections is the error to be subtracted from the detected value of thesensor, the error being caused by the calculated force in the directionsother than the predetermined direction.

The sensitivity matrix _(n) 330 may include, for example, a relationshipbetween force (torque) applied to the relevant force sensor _(n) 250around at least two three-dimensional coordinate axes perpendicular to adriving axis of the joint, and an output value of the force sensor _(n)250. Also, the sensitivity matrix _(n) 330 may include a relationshipbetween force (torque) applied around the driving axis of the joint,which the force sensor _(n) 250 is intended to detect, and an outputvalue of the force sensor _(n) 250.

As a result of the sensitivity matrix _(n) 330 being configured asdescribed above, for example, the other axial direction interferencecalculating unit 322 can calculate an error caused by the force in theother axial directions, which appears in an output value of the forcesensor _(n) 250 and a magnitude of interference in the other axialdirections using the force in the other axial directions calculated bythe other axial direction force calculating unit 321, and thesensitivity matrix _(n) 330. The sensitivity matrix _(n) 330 can beprovided in the form of, for example, a table memory in the storageapparatus 300.

Furthermore, a corrector 323 (correction process) subtracts theinterference in the other axial directions, which is the errorcalculated by the other axial direction interference calculating unit322, from the detected value from the force sensor _(n) 250 and therebycorrects the detected value from the force sensor _(n) 250 disposed atthe n-th joint.

A controller 324 can control the driving force of the driving unit _(n)230, using a current value of the driving force of the n-th joint, whichhas been corrected (interference in the other axial directions have beenremoved) by the corrector 323 (correction process).

As described above, force in other directions such as illustrated inFIG. 6 is exerted around a driving axis _(n) 200 of a joint. In FIG. 6 ,reference numeral 10 denotes force exerted around the driving axis _(n)200, which is detected by a force sensor _(n) 250. The force (10)detected by the force sensor _(n) 250 contains other axial directionforce 40. The other axial direction force 40 contains moment components(20) and translational force components (30), and as described above, inthe present embodiment, control for removing the effect of the otheraxial direction force from the detected value (10) from the force sensor_(n) 250 is performed.

Information processing in the function blocks in FIG. 3 described aboveis organized as follows with emphasis on an input/output relationship.

The arithmetic operation unit 320 includes the other axial directionforce calculating unit 321, the other axial direction interferencecalculating unit 322, the corrector 323 and the controller 324. Theother axial direction force calculating unit 321 receives inputs of acalculated value of a dynamic force acting on a n-th link, which is bythe calculating unit 340 calculating a dynamic force according on then-th link, and a detected value from a force sensor _(n+1) 350 of ann+1-th joint, and outputs force in other axial directions acting on aforce sensor _(n) 250 of the n-th joint.

The other axial direction interference calculating unit 322 receivesinputs of the force in other axial directions acting on the force sensor_(n) 250, which is output by the other axial direction force calculatingunit 321 and a sensitivity matrix _(n) 330 for the force sensor _(n)250, and outputs an error in detected value from the force sensor _(n)250, which has been caused by interference in the other axialdirections.

The corrector 323 receives inputs of the error in detected value of theforce sensor _(n) 250, which has been output from the other axialdirection interference calculating unit 322, and the detected value ofthe force sensor _(n) 250, and outputs a value resulting from correctionof the detected value of the force sensor _(n) 250.

The controller 324 receives inputs of an operation command for a drivingunit _(n) 230, which is output from the operation instructing unit 310,and the value resulting from correction of the detected value of theforce sensor _(n) 250, which has been output from the corrector 323, andoutputs an operation command for the driving unit _(n) 230.

In the below description, as expressed with subscripts such as n andn+1, in the configuration illustrated in FIG. 3 , where processing for ajoint driving force of an n-th joint is performed, it is necessary thatprocessing for a joint driving force of an n+1-th joint be alreadyperformed. Thus, the above processes are performed in the order startingfrom a joint on the end side of the robot arm 1 in the multijointconfiguration. Such joint driving force measurement processing can beexpressed in a form such as the flowchart in FIG. 4 .

Details of processing in the other axial direction force calculatingunit 321, the other axial direction interference calculating unit 322,the corrector 323 and the controller 324 in the arithmetic operationunit 320 in FIG. 3 will be described below with reference to theflowchart in FIG. 4 .

The flowchart in FIG. 4 indicates a control procedure in which for firstto sixth joints, interference in other axial directions is subtractedfrom force detected by a force sensor _(n) 250 of each joint and theresulting value is fed back to the driving unit _(n) 230 of the relevantjoint. The control in FIG. 4 is configured so that the control can beperformed in real time, for example, during work handling a work via therobot arm 1.

Thus, in the control in FIG. 4 , a maximum time period (times S to E)for joint control is determined (S400), and if joint control does notend within the maximum time period (S403), the joint control in FIG. 4is discontinued. However, the limitation of time consumed for one set ofjoint control is not essential in the present embodiment. However,limitation of time for one set of joint control for all the joints ofthe robot arm 1 enables, for example, effective use of calculationresources of the CPU included in the arithmetic operation unit 320 andreduction in risk of stagnation or malfunction of, e.g., position andpose control, which is primary.

In step S400, with a joint number (n) of a first processing target jointand control of all of the joints as one set, a variable of consumed timet consumed for performing one or several sets of control is reset to aninitial value S (start time). Among these, an index of the joint number(n) can be provided using a variable area assigned in an internalregister in the CPU included in the arithmetic operation unit or a stackor a certain address in a RAM. Also, consumed time t for one set of allthe joints can be measured using, e.g., a non-illustrated RTC (real timeclock).

In the case of the present embodiment, in step S400, 6 is assigned to nindicating the number of each of a joint and a link of the robot arm 1,control of the sixth joint 126 in FIG. 1 is performed first.Subsequently, while the value of n is decreased to 5, 4, 3 . . . (S402),the entire loop indicated in FIG. 4 is executed, whereby control of thejoints is performed in the order from the end side to the base side.

In FIG. 4 , other axial direction force calculation processing (stepS410) corresponds to processing in the other axial direction forcecalculating unit 321 in FIG. 3 . In the other axial direction forcecalculation processing (S410), a balance expression of force acting onan n-th link driven by an n-th joint (Expression (1) below) is solved tocalculate force acting on a force sensor _(n) 250 of the n-th joint.

[Expression 1]

f _(jn) =F _(jn) +f _(jn+1)  (1)

Here, In Expression (1) above, the first term of the left side is forceacting on a force sensor _(n) 250 of an n-th joint, and the first termof the right side is dynamic force acting on an n-th link. Also, thesecond term of the right side is force acting on a force sensor _(n+1)350 of an n+1-th joint adjacent to the n-th joint on the end side of therobot arm 1 (step S405). In the processing in FIG. 4 , the force actingon the force sensor _(n+1) 350 of the n+1-th joint in the second term ofthe right side has already been calculated through later-describedre-definition processing (S460).

In other axial direction calculation processing (S410), Expression (1)is solved in terms of the first term of the left side to determine forcein the respective directions acting on the force sensor _(n) 250,enabling calculation of force in other axial directions acting on thesensor _(n) 250.

Here, where n=6, there is no seventh joint in the robot arm 1, and thus,the second term of the right side of Expression (1) is zero, and wheren=5 or less, force acting on a relevant force sensor _(n+1) 350 is used.

For example, FIG. 9 illustrates an end part of the robot arm 1 of therobot apparatus in FIG. 1 , that is, links joined via two joints 125(J5), 126 (J6). Forces Fj5, Fj6 exerted on these joints 125 (J5), 126(J6) can be indicated as Expression (2) below.

[Expression2] $\begin{matrix}{\begin{bmatrix}{Mx}_{j5} \\{My}_{j5} \\{Mz}_{j5}\end{bmatrix} = {F_{\beta} + \begin{bmatrix}{Mz}_{j6} \\{My}_{j6} \\{Mx}_{j6}\end{bmatrix}}} & (2)\end{matrix}$

Expression (2) is used in particular for a special case where n=5 inExpression (1). The first term of the left side is force acting on aforce sensor _(n) 250 of a joint 125 (J5). The force includes forcesMxj5, Myj5, Mzj5 around the three axes of the joint, which are indicatedin FIG. 9 . Also, the second term of the right side is force acting on aforce sensor _(n+1) 350 of a joint 126 (J6). The force includes forcesMzj5, Myj5, Mxj5 around three axes of the joint, which are indicated inFIG. 9 . These forces are put on respective positions in respectivematrixes corresponding to respective positional relationships amongjoint axes in FIG. 9 .

Also, the first term of the right side in Expressions (1), (2), that is,dynamic force acting on the n-th link is calculated by means of dynamicforce calculation processing (step S420) in FIG. 4 . The dynamic forcecalculation processing (S420) corresponds to the calculating unit 340 inFIG. 3 , and the force acting on the n-th link is calculated usingstatic information and dynamic information on the n-th link. The staticinformation used for arithmetic operation in the dynamic forcecalculation processing (step S420) includes information on a shape,inertia, elasticity and/or a pose of the link, and the dynamicinformation includes information on a speed and an acceleration of thelink. As a matter of course, among these, static conditions such as theshape, the inertia and the elasticity of the link is known from designinformation on the robot arm 1, and thus can be stored in advance in thestorage apparatus 300. Also, the processing in FIG. 4 is to be performedduring control of the robot arm 1 in a certain position or pose, andthus, the arithmetic operation unit 320 (CPU) can identify dynamicconditions such as the pose of the joint and the speed and theacceleration of the link at the current point of time from the robotcontrol program that is being executed.

Also, in the present embodiment, in the other axial direction forcecalculation processing (S410), particularly for force acting on then+1-th joint, a corrected detected value from the force sensor _(n+1)350, which is re-defined and converted into coordinates inlater-described steps S460 and S470, is used (S405). However, asindicated in Embodiment 2, which will be described later, in the otheraxial direction force calculation processing (S410), a calculated valueof dynamic force acting on the n-th link alone, which is calculated bythe calculating unit 340 of calculating dynamic force acting on an n-thlink, may be used. In this case, force in other axial directions exertedon the relevant n-th joint is calculated based on dynamic conditionssuch as the pose of the robot arm and the speed and the acceleration ofthe link at the current point of time.

Here, force exerted on a joint n, which is calculated by the dynamicforce calculation processing (S420) can be organized and indicated, forexample, as Expression (3) below.

[Expression 3]

F _(jn) =I{umlaut over (θ)} _(jn) +C{dot over (θ)} _(jn) +Kθ _(jn)  (3)

In Expression (3) above, the first term of the right side is anacceleration proportional term determined by, e.g., a length and a massof a link supported by the joint, and the second term of the right is aspeed proportional term determined by, e.g., a speed of rotationaldriving of the joint. Also, the third term of the right side is aposition proportional term determined by, e.g., elasticity of the linksupported by the joint.

Subsequent to the above other axial direction force calculationprocessing (S410), in other axial direction interference calculationprocessing (step S430), an amount of error in detected value from theforce sensor _(n) 250, caused by the force in the other axial directionscalculated above, that is, interference in the other axial directions iscalculated. The other axial direction interference calculationprocessing (step S430) corresponds to the processing in the other axialdirection interference calculating unit 322 in FIG. 3 .

In the other axial direction interference calculation processing (stepS430), the force in other axial directions acting on the force sensor_(n) 250 calculated in the other axial direction force calculationprocessing (S410) and a sensitivity matrix _(n) 330 for the force sensor_(n) 250 are multiplied to calculate a sensor detected value errorcaused by the interference in the other axial directions. As mentionedabove, the sensitivity matrix _(n) 330 is provided, for example, in thestorage apparatus 300, and stores a relationship between force in otheraxial directions acting on the force sensor _(n) 250 and a sensordetected value error caused by interference in the other axialdirections.

Subsequently, in detected value correction processing (step S440), thedetected value from the force sensor _(n) 250 is corrected using theother axial direction interference value calculated in the other axialdirection interference calculation processing (step S430). The detectedvalue correction processing (step S440) corresponds to the processing inthe corrector 323 in FIG. 3 . In the detected value correctionprocessing (S440), the detected value from the force sensor _(n) 250 iscorrected by subtracting the sensor detected value error caused in theforce sensor _(n) 250, which has been calculated in the other axialdirection interference calculation processing 430, from the detectedvalue from the force sensor _(n) 250.

Next, in operation instruction determination processing (step S450),driving control of a driving unit _(n) 230 of the n-th joint isperformed based on the corrected detected value from the force sensor_(n) 250. The operation instruction determination processing (step S450)corresponds to processing in the controller 324 in FIG. 3 , and forexample, following driving force control is performed. For example, inthe operation instruction determination processing (step S450), forcearound a driving axis _(n) 200 provided by the driving unit _(n) 230 tothe n-th link (target value) is calculated according to an operationinstruction output from the operation instructing unit 310. Also, adeviation of the corrected detected value from the force sensor _(n) 250calculated in the detected value correction processing (step S440)(actual value) from the target value is calculated. Then, for example,an operation instruction for the driving unit _(n) 230 is determined soas to reduce the deviation of the actual value from the target value ofthe force around the driving axis _(n) 200 provided to the n-th link,based on an operation instruction.

The control loop in FIG. 4 has two bifurcation steps, S401 and S403last. First, in step S401, whether or not the value of n is 1 isdetermined. If n=1, that is, the processing has sequentially beenperformed starting from the sixth to the first joint, the processingtransitions to step S403, and if not, the processing transitions to stepS460 to perform processing for next n−1-th joint. The proceeding of theprocessing from step S401 to step S403 means an end of one set ofcontrol of the sixth to first joints. In step S403, whether or not thevariable of the consumed time t reset in S400 indicates a predeterminedend time E or later is determined. In the case of affirmativedetermination in step S403, the consumed time t exceeds thepredetermined maximum processing time period (S to E), and thus, theprocessing for measurement and joint driving force control in FIG. 4 isterminated.

On the other hand, in the case of negative determination in step S403,which is equivalent to a recognition that there is still some time toperform a next set of control of the sixth to first joints, and in thiscase, the processing returns to step S400 through step S404. Here, instep S404, the variable of the consumed time t is incremented. Althoughin step S404 in the figure, a simplified indication of “t+1” isemployed, in step S404, processing for adding actual time measured by,e.g., a RTC may be performed. Or, processing for adding time requiredfor one set of control of the sixth to first joints, the required timebeing calculated in advance, may be performed. Also, the unit of theincrement does not necessarily need to be a time unit such as ms or μs,and another type of unit may arbitrarily be employed. In that case, itshould be understood that definition of the end time E is determined soas to correspond to the unit of the increment in step S404.

On the other hand, in the case of negative determination in step S401,the processing of one set up to the first joint has not ended, and thusthe processing returns to step S410 described above through steps S460,S470, S402 and S405.

First, in re-definition processing for re-definition of the forceapplied to the force sensor n in step S460, the calculated value of theforce acting on the force sensor _(n) 250 obtained by solving Expression(1) in the other axial direction force calculation processing (S410) isreplaced with the detected value from the force sensor _(n) 250, whichhas been corrected in the detected value correction processing (S440).It should be understood that this replacement processing is performedonly for the component around the joint driving axis detected by theforce sensor _(n) 250.

In coordinate conversion processing in step S470, coordinate conversionprocessing for converting the calculated value of the force acting onthe force sensor _(n) 250 from an expression based on referencecoordinate axes of the n-th joint into an expression based on referencecoordinate axes of a next n−1-th joint adjacent to the n-th joint on thebase 110 side is performed. In this coordinate system conversion, acoordinate expression of the force acting on the force sensor _(n) 250,which has been modified in the re-definition processing of the forceacting on the force sensor (S460) (expressed by a vector or a matrix) isconverted. Here, the arithmetic operation unit 320 can calculate, forexample, positions or poses (position and orientation) of the joint axesof the n-th joint and the n−1-th joint, which is a next processingtarget, from an instruction from the operation instructing unit 310 orthe robot control program. Here, coordinate system of conversion of acoordinate system with the joint axis of the n-th joint as (for example)the Z-axis into a coordinate system with the joint axis of the n−1-thjoint as (for example) the Z-axis may be performed.

In step S402, in order to indicate a next joint adjacent to the n-thjoint on the base side, n, which is an index of a joint, is decrementedby 1 (n=n−1). Consequently, the n-th joint for which the process hasjust ended is referred to as an n+1-th joint in the next jointprocessing.

In other words, in step S405, the second term of the right side ofExpression (1), that is, the force acting on the force sensor _(n+1) 350of the n+1-th joint adjacent to the n-th joint on the end side, theforce subjected to the coordinate conversion and the re-definition inimmediately-previous steps S460, S470 and S402 is used.

Subsequently, the processing in step S410 onwards is repeated for thenext n-th joint. The processing for measurement and joint driving forcecontrol in FIG. 4 is performed with the processing unit of processing ofsixth to first joints as one set. Also, the processing for measurementand joint driving force control in FIG. 4 is performed for one orseveral sets until the maximum time (E) is reached.

(Effects of Embodiment 1)

As a result of the joints of the robot arm 1 being configured as inFIGS. 1 and 2 , a pathway extending through a force sensor is only onepathway of force transferred between two links connected to each of thejoints of the robot arm. Thus, a force sensor _(n) 250 of an n-th jointdirectly receives force in other axial directions acting on an n-th link220, enabling simplification of a transfer pathway for transfer of theforce in the other axial directions acting on the n-th link 220 to theforce sensor _(n) 250. In the conventional joint configuration, forcetransferred through a joint is transferred via mechanical elements suchas a cross roller bearing and/or an oil seal, and thus, there arepathways of force transfer between two links connected to a joint otherthan a pathway extending through a force sensor. On the other hand, inthe present embodiment, a pathway extending through a force sensor is anonly pathway of transfer of force between two links joined via thejoint. Thus, a value of force in other axial directions acting on aforce sensor _(n) 250 can easily be grasped. Consequently, provision ofthe other axial direction force calculating unit 321 in the robotcontrol apparatus 2 enables high-precision determination of force inother axial directions received on the force sensor _(n) 250 and alsoenables the below measurement control to be performed more accurately.

Furthermore, in the present embodiment, the other axial directioninterference calculating unit 322 is provided in the robot controlapparatus 2. Consequently, an error in detected value from the forcesensor _(n) 250, caused by interference in other axial directions, canbe modified with high precision. Consequently, force around a drivingaxis can accurately be measured, and use of the force around the drivingaxis for driving control of the robot arm 1 enables accurate andreliable control of the driving force in the robot arm 1. Therefore, theend-effector 117 at the distal end of the robot arm 1 can control forceprovided to a component (work) with high precision. Thus, even in aprocess requiring a load provided to a component to be around severalgrams such as a process of attachment of a soft object or a low-strengthmember, proper joint driving force control can be performed.Consequently, the likelihood that automation of a process of attachmentof a soft object or a low-strength member, which has conventionally beendifficult, is achieved by a robot apparatus is increased.

Also, the control in FIG. 4 is performed in such a manner that, withprocessing for all the joints included in the robot arm 1 determined asone set, time consumed for processing performed for one or several setsdoes not exceed the maximum processing time period (S to E). Thus, forexample, the calculation resources of the CPU included in the arithmeticoperation unit 320 can effectively be used, enabling reduction in riskof stagnation or malfunction of, e.g., position and pose (position andorientation) control, which is primary.

Embodiment 2

In Embodiment 2, an alteration of joint driving force measurement andcontrol based on the measurement indicated in FIG. 4 will be described.Hardware configurations of a robot system and a control system for therobot system may be the same as those of Embodiment 1 above.

FIG. 5 is a flowchart illustrating an alteration of joint driving forcemeasurement and control based on the measurement indicated in FIG. 4 .In FIG. 5 , steps that are similar to those in FIG. 4 are provided withstep numbers that are the same as those in FIG. 4 , and overlappingdescription of details of the steps will be omitted below. In FIG. 5 ,the relationship with the function blocks in FIG. 3 are similar to thosein FIG. 4 , and illustration thereof is also omitted.

The control in FIG. 5 is different from that in FIG. 4 in that indriving control of an n-th joint of a robot arm 1, no detected valuefrom a force sensor _(n+1) 350 of a n+1-th joint is used in other axialdirection force calculation processing (S410 in FIG. 5 ). In the otheraxial direction force calculation processing (S410) in FIG. 5 , force inother axial directions acting on a force sensor _(n) 250 of an n-thjoint is calculated using only a calculated value of dynamic forceacting on the n-th link, which is calculated by a dynamic forcecalculating unit (340 in FIG. 3 ). In the present embodiment, in theother axial direction force calculation processing (S410 in FIG. 5 ),force in other axial directions exerted on the relevant n-th joint iscalculated based on dynamic conditions such as a pose of the robot armand a speed and an acceleration of a link at that point of timeincluding force exerted on the n+1-th joint.

Thus, in the control in FIG. 5 , on a route of transition to processingfor a next joint, only coordinate conversion processing (S470) anddecrement of n (S402), which is an index indicating a joint areperformed, and no re-definition processing (S460 in FIG. 4 ) isperformed. Here, in the coordinate conversion processing (S470) in FIG.5 , processing for changing at least a coordinate system used forexpression of force used in arithmetic operation from a coordinatesystem of a current pose of the robot arm 1 with an n-th joint as anorigin to a coordinate system with an n−1-th joint as an origin may beperformed.

Also, in the control in FIG. 5 , reset of consumed time t in step S400in FIG. 4 , consumed time determination in S403 and increment of theconsumed time t in S404 are omitted. This is because increase in speedof processing can be expected because of, for example, omission of theabove-described re-definition processing (S460 in FIG. 4 ), but as inthe control in FIG. 4 , processing with a limitation of maximum time forprocessing with all the joints as one set may be performed.

(Effects of Embodiment 2)

In the control according to Embodiment 2, basically, effects that aresimilar to those of Embodiment 1 above can be expected. In other words,provision of an other axial direction force calculating unit 321 (FIG. 3) enables high-precision determination of force in other axialdirections acting around a detection axis of a force sensor _(n) 250.Then, a detection error (interference in the other axial directions)caused in the force sensor _(n) 250 by the forces in other axialdirections can be modified with high precision using a sensitivitymatrix _(n) 330 provided in advance. Thus, a force acting on a work via,e.g., an end-effector 117 of a distal end of the robot arm 1 can becontrolled high precision. Consequently, the likelihood that automationof a process requiring a load provided to a component to be aroundseveral grams such as a process of attachment of a soft object or alow-strength member is achieved by a multijoint robot arm is increased.

Also, according to Embodiment 2, the force in the other axial directionsacting on a force sensor _(n) 250 of an n-th joint is calculated withre-definition processing of a detected value from the force sensor _(n)250 of a joint for which processing has ended (S460 in FIG. 4 ) omittedand using only a calculated value of dynamic force acting on the n-thlink. Thus, for example, calculation resources of a CPU included in anarithmetic operation unit 320 can effectively be used, enablingreduction in risk of stagnation or malfunction of, e.g., primaryposition and pose control, which is primary.

(Alterations and the Like)

In the above description, a vertical six-axis multijoint configurationis indicated as an example of the configuration of the robot arm 1.However, the present invention is not limited by the number of joints ora joint configuration. For example, if the number of joints of a robotarm is no less than two, measurement and joint control that are similarto those described above can be performed, and for any of the joints,the joint configuration illustrated in FIGS. 1 and 2 can be provided.Also, where the robot arm has a horizontal multijoint configuration or aparallel link configuration, the above-described joint configuration canbe provided and measurement and joint control that are similar to thosedescribed above can be performed, and thus effects similar to the abovecan be expected.

Also, although rotary joints have mainly been indicated as joints of therobot arm 1, for a slider joint such as illustrated in FIG. 8 , also,measurement and joint control that are similar to those described abovecan be performed, and thus effects similar to the above can be expected.Also, although an electric motor and a reducer have been indicated as anexample of a driving unit _(n) 230 of a joint of the robot arm 1, wherea driving unit includes, e.g., a hydraulically-driven actuator, also,measurement and joint control that are similar to those described abovecan be performed, and thus effects similar to the above can be expected.Also, although a constraining part _(n) 240 has been configured using across roller bearing 241, where a constraining part is configured usingany of various rolling bearings and linearly-driven bearings as analteration thereof, also, measurement and joint control that are similarto those described above can be performed, and thus effects similar tothe above can be expected.

The robot control apparatus 2's control indicated in FIGS. 3 to 5 can beperformed by, for example, a CPU (central processing unit). Therefore,the control may also be performed by supplying a recording medium with aprogram recorded therein, the program providing the above-describedfunctions, to the robot control apparatus 2 and making the computer (theCPU or the MPU) included in the robot control apparatus 2 read andexecute the program stored in the recording medium. In this case, theprogram itself read from the recording medium provides the functions ineach of the above-described embodiments, and thus, the program itselfand the recording medium with the program recorded therein are includedin the present invention.

Also, as an example of a computer-readable recording medium with aprogram recorded therein, the program providing the present invention,the storage apparatus 300 such as, for example, an HDD has beenindicated. However, as a computer-readable recording medium with aprogram recorded therein, the program providing the present invention,an arbitrary recording medium may be used regardless of whether thestorage (recording) medium is of a fixed type or a removable type. Theprogram that provides the present invention may be recorded in any typeof recording medium as long as the recording medium is acomputer-readable recording medium. For this type of recording medium,e.g., a ROM (which may be, e.g., an EEPROM or a flash memory), aflexible disk, a hard disk, an optical disk, a magnetooptical disk, aCD-ROM, a CD-R, a magnetic tape or a non-volatile memory card can beused. Also, the program according to the present embodiment can beperformed by a computer as a result of, e.g., downloading the programvia a network and copying the program on the RAM or writing the programonto an EEPROM.

Also, the present invention is not limited to a case where the functionsaccording to the present embodiment are provided by executing programcodes read by a computer. The present invention includes a case where,e.g., an OS (operating system) operating on a computer performs a partor all of actual processing based on instructions according to theprogram codes and the functions according to the above-describedembodiments are provided by the processing.

Furthermore, the program codes read from the recording medium may bewritten into a function extension board inserted in the computer or amemory included in a function extension unit connected to the computer.The present invention includes a case where, e.g., a CPU included in thefunction extension board or a function extension unit performs a part orall of actual processing based on instructions according to the programcodes and the functions according to the present embodiment are providedby the processing.

Other Embodiments

Embodiment(s) of the present invention can also be realized by acomputer of a system or apparatus that reads out and executes computerexecutable instructions (e.g., one or more programs) recorded on astorage medium (which may also be referred to more fully as a‘non-transitory computer-readable storage medium’) to perform thefunctions of one or more of the above-described embodiment(s) and/orthat includes one or more circuits (e.g., application specificintegrated circuit (ASIC)) for performing the functions of one or moreof the above-described embodiment(s), and by a method performed by thecomputer of the system or apparatus by, for example, reading out andexecuting the computer executable instructions from the storage mediumto perform the functions of one or more of the above-describedembodiment(s) and/or controlling the one or more circuits to perform thefunctions of one or more of the above-described embodiment(s). Thecomputer may comprise one or more processors (e.g., central processingunit (CPU), micro processing unit (MPU)) and may include a network ofseparate computers or separate processors to read out and execute thecomputer executable instructions. The computer executable instructionsmay be provided to the computer, for example, from a network or thestorage medium. The storage medium may include, for example, one or moreof a hard disk, a random-access memory (RAM), a read only memory (ROM),a storage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2015-210914, filed Oct. 27, 2015, which is hereby incorporated byreference herein in its entirety.

1.-13. (canceled)
 14. A robot comprising: at least two joints; a sensorthat detects information about torque in a predetermined joint among thejoints; and a control unit, wherein the control unit: acquires a loadother than the torque in the predetermined joint, and corrects thetorque based on the load.
 15. The robot according to claim 14, whereinthe load acts by inertia of a component of the robot.
 16. The robotaccording to claim 14, wherein the control unit further: acquiresinformation about rotation of a joint other than the predetermined jointamong the joints, and acquires the load based on the information. 17.The robot according to claim 16, wherein the information about therotation is information about torque generated by the rotation.
 18. Therobot according to claim 14, wherein the control unit further: acquiresa variation amount of the torque based on the load, and corrects thetorque based on the variation amount.
 19. The robot according to claim18, wherein the control unit corrects the torque by subtracting thevariation amount from the torque.
 20. The robot according to claim 18,wherein the control unit acquires the variation amount based on the loadand a relationship between the load and the variation amount.
 21. Therobot according to claim 20, wherein the relationship is a sensitivitymatrix for the sensor.
 22. The robot according to claim 14, wherein thecontrol unit acquires the load based on a parameter of a component ofthe robot.
 23. The robot according to claim 22, wherein the parameterincludes information about a shape of the component of the robot. 24.The robot according to claim 14, wherein the load includes a momentcomponent and a translational force component.
 25. The robot accordingto claim 14, wherein the control unit corrects the torque to improveaccuracy of the torque.
 26. The robot according to claim 14, wherein thejoint other than the predetermined joint is a joint adjacent to thepredetermined joint on an arm end side in the robot.
 27. The robotaccording to claim 26, wherein the control unit performs acquisition ofthe load and correction of the torque sequentially starting from a jointon the arm end side in the robot.
 28. The robot according to claim 26,wherein the control unit uses, when acquiring the load, an output valueof the sensor of the joint adjacent on the arm end side as a value offorce applied to the joint adjacent on the arm end side.
 29. The robotaccording to claim 26, wherein the control unit uses, when acquiring theload, a calculated value of force applied to the sensor of the jointadjacent on the arm end side as a value of force applied to the jointadjacent on the arm end side.
 30. The robot according to claim 14,wherein the sensor detects the torque using at least one of a straingauge method, a capacitance method, a magnetic method and an opticalencoder method.
 31. An article manufacturing method for manufacturing anarticle, the method comprising: providing the robot according to claim14; and utilizing the robot to manufacture the article.
 32. A controlmethod of a robot, the robot comprising at least two joints, a sensorthat detects information about torque in a predetermined joint among thejoints, and a control unit, wherein the method comprises the controlunit: acquiring a load other than the torque in the predetermined joint,and correcting the torque based on the load.
 33. A non-transitorycomputer-readable storage medium storing a program that causes acomputer to execute the control method according to claim 32.